The present invention relates to the transmission of digital data and, more particularly, to a method of data transmission that uses space time block codes.
Communication data rates are increasing rapidly to support endpoint application requirements for ever-growing bandwidth and communication speed. First generation cellular telephony equipment supported a data rate of up to 9.6 kbps. Second generation cellular telephony equipment supported a data rate of up to 57.6 kbps. Now, the third generation cellular telephony standards support a data rate of up to 384 kbps, with a rate of up to 2 Mbps in local coverage. The WLAN 802.11a supports a data rate of up to 54 Mbps. The 802.11b supports a data rate of up to 11 Mbps. Both of these rates are much higher than the 3 Mbps data rate of the 802.11 standard.
Although the rates specified by the communication standards are increasing, the allowed transmit power remains low because of radiation limitations and collocation requirements. Higher data rates with fixed transmit power result in range degeradation. With modern error correction codes having almost achieved Shannon's limit, the desired data transmission rates can be achieved only via space diversity: MIMO (multiple input, multiple output), SIMO (single input, multiple output) or MISO (multiple input, single output) instead of SISO (single input single output). Size limitations on personal cellular telephony transceivers mandate that cellular telephony downlinks be MISO: several antennas at the base station transmitting to one antenna at the personal transceiver.
In U.S. Pat. No. 6,185,258, which patent is incorporated by reference for all purposes as if fully set forth herein, Alamouti et al. teach a block code for implementing both space and time diversity using two transmission antennas. Symbols are transmitted in pairs. Given two complex symbols s0 and s1 to transmit, first s0 is transmitted via the first antenna and s1 is transmitted via the second antenna, and then −s1 is transmitted via the first antenna and s0 is transmitted via the second antenna. At the receiver, a maximum likelihood detector recovers the two symbols from the received transmission.
One useful way of looking at the method of Alamouti et al. is that the two symbols are encoded as a matrix
      (                                        s            0                                                -                          s              1              *                                                                        s            1                                                s            0            *                                )    .Each row of this matrix corresponds to a different transmission antenna. Each column of this matrix corresponds to a different transmission time. If the symbols are normalized, as for example in PSK modulation, this matrix is unitary. The only constraint, however, on the matrix is that it is unitary. The two symbols s0 and s1 are otherwise independent. In other so-called “space time block codes”, the matrix elements are selected in an effort to optimize channel diversity. For example, A. Shokrollahi et al., in “Representation theory for high rate multiple antenna code design (IEEE Trans. Information Theory vol. 47 no. 6 pp. 2335-2367, September 2001) studied the use of unitary matrix representations of fixed-point-free groups for this purpose. Given 2m such matrices, each of the 2m possible binary patterns for m bits is allocated to a respective one of the matrices. The data to be transmitted are partitioned into groups of m bits. For each group, the corresponding matrix is transmitted.
For example, one 2×2 representation of the quaternion group Q2 is:
            Q      i        =          (                                    1                                0                                                0                                1                              )                  Q      j        =          (                                    0                                1                                                              -              1                                            0                              )                  Q      k        =          (                                    i                                0                                                0                                              -              i                                          )                  Q      i        =          (                                    0                                              -              i                                                                          -              i                                            0                              )      and their negatives. The eight possible binary patterns of three bits are allocated as follows: (0,0,0) to Qi, (1,0,0) to Qj, (0,0,1) to Qk, (1,0,1) to Ql, (0,1,1) to −Qi, (1,1,1) to −Qj, (0,1,0) to −Qk and (1,1,0) to −Ql. The data to be transmitted is partitioned into triplets of bits. To transmit the bit triplet “0,0,0”, first the first transmitter transmits the number “1” while the second transmitter is silent, and then the second transmitter transmits the number “1” while the first transmitter is silent. To transmit the bit triplet “1,0,0”, first the second transmitter transmits the number “−1” while the first transmitter is silent, and then the first transmitter transmits the number “1” while the second transmitter is silent. To transmit the bit triplet “0,0,1”, first the first transmitter transmits the number “i” while the second transmitter is silent, and then the second transmitter transmits the number “−i” while the first transmitter is silent. To transmit the bit triplet “1,0,1”, first the second transmitter transmits the number “−i” while the first transmitter is silent, and then the first transmitter transmits the number “−i” while the second transmitter is silent. To transmit the bit triplet “0,1,1”, first the first transmitter transmits the number “−1” while the second transmitter is silent, and then the second transmitter transmits the number “−1” while the first transmitter is silent. To transmit the bit triplet “1,1,1”, first the second transmitter transmits the number “1” while the first transmitter is silent, and then the first transmitter transmits the number “−1” while the second transmitter is silent. To transmit the bit triplet “0,1,0”, first the first transmitter transmits the number “−i” while the second transmitter is silent, and then the second transmitter transmits the number “i” while the first transmitter is silent. To transmit the bit triplet “1,1,0”, first the second transmitter transmits the number “i” while the first transmitter is silent, and then the first transmitter transmits the number “i” while the second transmitter is silent. “Transmitting” a complex number means modulating a carrier wave according to the number, for example by multiplying the amplitude of the carrier wave by the absolute value of the number and shifting the phase of the carrier wave by the phase of the number. (So in the above example, silencing an antenna is equivalent to transmitting the number “0” via that antenna.)